#include<iostream>
#include<algorithm>
using namespace std;
struct node
{
	int ti,vi;
}n[110];
int dp[110][1010];
int main()
{
	int t,m;
	cin>>t>>m;
	for(int i=1;i<=m;i++)
		cin>>n[i].ti>>n[i].vi;
	for(int i=1;i<=m;i++)
	{
		for(int j=t;j>=0;j--)
		{
			if(j>=n[i].ti)
				dp[i][j]=max(dp[i-1][j],dp[i-1][j-n[i].ti]+n[i].vi);
			else
				dp[i][j]=dp[i-1][j];
		}
	}
	cout<<dp[m][t];
    return 0;
}
